When a designer creates a logic design, a frequently used function which the designer intends to include is a flip flop with a set/reset function. Typically the designer will include in the design the circuitry necessary to set or reset multiple flip flops in response to a command to set or reset the system. It is often desirable to have some flip flops return to a specified state asynchronously, that is, as soon as a set or reset command is generated, and to have other flip flops return to a specified state synchronously, that is, upon receiving a clock signal after a set or reset command has been sent. Further, it is often desirable to have some flip flops respond to a set signal (assume a logical 1 state) and other flip flops to respond to a reset signal (assume a logical 0 state).
When designing a circuit with the aid of a computer, a user calls up symbols from a symbol library and places these symbols in view on a computer monitor. The user then interconnects the symbols to form a schematic diagram. In the past, a designer was required to develop a schematic diagram from primitive logic symbols such as AND, OR, and flip flop. If the user was designing a bus-wide function, the logic would have to be entered multiple times for the multiple lines in the bus.
Regarding the reset function in particular, users frequently wish to provide both synchronous and asynchronous set and reset control of flip flops. The asynchronous set or reset is provided as part of a standard D flip flop and can therefore be used directly by the designer. To form a synchronous set or reset for a flip flop, it was necessary to design and show the specific gates which would generate the necessary logic.
In either case, the process of designing the necessary circuitry to handle the set/reset functions is tedious, especially if the functions to be handled are bus-wide and if it is desirable to have a complex combination of set/reset and asynchronous/synchronous controls of different bits in different parts of the circuit design. Users prefer to do their designing at a higher level, thinking in terms of registers rather than flip flops, and to avoid the tedious attention to detail which has been required in the past.